var http = require('http'); 
var net = require('net'); 
var url = require('url'); 

/**
**在本地 8888 端口开启 HTTP 代理服务，
**这个服务从请求报文中解析出请求 URL 和其他必要参数，
**新建到服务端的请求，并把代理收到的请求转发给新建的请求，
**最后再把服务端响应返回给浏览器。
**修改浏览器的 HTTP 代理为 127.0.0.1:8888 后再访问 HTTP 网站，代理可以正常工作
**/
function request(cReq, cRes) { 
    var u = url.parse(cReq.url); 
 
    var options = { 
        hostname : u.hostname,  
        port     : u.port || 80, 
        path     : u.path,        
        method     : cReq.method, 
        headers     : cReq.headers 
    }; 
 
    var pReq = http.request(options, function(pRes) { 
        cRes.writeHead(pRes.statusCode, pRes.headers); 
        pRes.pipe(cRes); 
    }).on('error', function(e) { 
        cRes.end(); 
    }); 
 
    cReq.pipe(pReq); 
} 
 
http.createServer().on('request', request).listen(8088, '0.0.0.0'); 